In life, it's often easier
to learn a new skill if you already have expertise in a similar transferable skill. For example, it's probably easier to teach someone
how to drive a bus, if they have already
learned how to drive a car. The driver can build on the driving skills they've
already learned in a car, and apply them to driving a bus. The same principle can
be applied to training deep learning models through a technique called
transfer learning. A Convolutional Neural Network or CNN for image classification, is typically composed of multiple layers that
extract features and then use a final
fully-connected layer to classify images based
on those features. Conceptually, this
neural network consists of two distinct sets of layers: a set of layers from the base model that
perform feature extraction, a fully connected
layer that takes the extracted features and uses them for a
class prediction. The feature extraction
layers apply convolutional filters and
pooling to emphasize edges, corners and other
patterns and images, that can be used to
differentiate them. In theory it should work
for any set of images with the same dimensions as the
input layer of the network. The prediction layer
maps the features to a set of outputs that represent probabilities for
each class label you want to use to
classify the images.